Computer animation and other computer modeling applications combine two-dimensional (2D) or three-dimensional (3D) models of objects or characters and their corresponding programmed or keyframed movement. These models are constructed out of geometrical vertices, faces, and edges in a 3D coordinate system. One form of computer animation involves attaching a 3D model to a transformation hierarchy approximating a skeleton to dictate an object or a character's movement. The skeleton is surrounded by a surface mesh representing the object or character's boundaries. A 3D surface mesh may have a high level of resolution and include polygons, or faces, of various sizes making up the surface of the mesh, and the surface mesh may be shaped and deformed as required by an animator or other operator to achieve a desired result.
When comparing film-quality character rigs with ones designed for real-time applications, there is a clear difference in the quality of the mesh deformations. Real-time rigs are limited by a computational budget and often trade realism for performance. Rigs for film do not have this same limitation, and character riggers can make the rig as complicated as necessary to achieve realistic deformations.
Specifically, the level of detail included in character rigs for interactive applications such as video games and virtual reality is limited by computational constraints (e.g., a mobile device may have less processing power than a network of computer servers). These types of rigs need to run in real-time, and therefore need to be able to evaluate at rates that support user interactivity without excessive delay. Because of this limitation, the character rigs often lack a high level of realism. Film-quality character rigs, on the other hand, are not limited by computational constraints and their mesh deformations can appear much more realistic.
Because film-quality rigs require greater computational capacity, film-quality character rigs are not intended for interactive applications. A single film-quality rig may be able to run in real-time on high-end hardware after tremendous effort is spent to optimize and parallelize the rig evaluation. To increase the realism of interactive applications, it is desirable to use these high quality rigs but directly plugging computationally intensive rigs into an interactive application is impractical due to the interactive real-time requirements.
Thus, the existing systems and methods are unable to provide a solution for reducing the computation required for mesh deformations for film-quality rigs for use in real-time applications. Therefore, it is advantageous to determine mesh deformations for film-quality rigs (or near film-quality rigs) for use in real-time applications.